Message Passing Interface (MPI) is a group of language-independent Application Program Interface (API) specifications which define protocols for software processes to communicate with one another by sending and receiving messages. MPI is a de facto standard, unsanctioned at present by any major standards body. A variety of MPI specification versions and MPI implementations exist, many of which are directed at multi-threaded and/or parallel programs. MPI is widely used in High-Performance Computing (HPC) environments.